home *** CD-ROM | disk | FTP | other *** search
/ PsL Monthly 1993 December / PSL Monthly Shareware CD-ROM (December 1993).iso / prgmming / dos / asm / d4851z.com / DZ80.DOC < prev    next >
Encoding:
Text File  |  1990-08-22  |  3.0 KB  |  60 lines

  1.  
  2. DZ80 Z80 Disassembler - Copyright 1990 by Jeffery L. Post
  3. Version 1.0 - Aug 22, 1990
  4.  
  5.     DZ80 is a cross disassembler for MSDOS machines. It generates a Z80
  6. assembly source code file from either a binary file or an Intel hex file.
  7. The executable code for DZ80 is public domain. The C source code for this
  8. program is NOT public domain but may be purchased from the author for
  9. personal or educational use only. To obtain the C source on a standard
  10. 360K MSDOS 5 1/4" diskette, send $15 cash, check, or money order to:
  11.  
  12.         Jeffery L. Post
  13.         22726 Benner Ave.
  14.         Torrance, CA  90505
  15.  
  16. The executable program may be freely distributed through public domain
  17. channels (bulletin boards, PD software houses, friends, etc) provided
  18. this documentation file is included.
  19.  
  20.     Command line format is: DZ80 filename [options]. The filename should
  21. be entered without an extension. The default extension is HEX. If the 'b'
  22. (binary file) option is used, the default extension is BIN. The 'd' (data)
  23. option will append a comment field to each assembly line consisting of the
  24. address of the instruction and hex and ascii representations of the code
  25. byte(s). Option entry is freeform: 'db' 'd b' '-bd' '-b -d' all mean the
  26. same thing. The 'x' option specifies a hexadecimal offset to be added to
  27. the program data. This is useful when disassembling CP/M com files, among
  28. other things. If used, the x option must be the last specified in the
  29. command line.
  30.  
  31.     DZ80 does three passes over the code being disassembled. The first pass
  32. searches for opcodes that reference program locations (such as jumps and
  33. calls) so that labels may be generated in the source listing. Pass two does
  34. the actual disassembly and writes source lines to the output file. Pass three
  35. then searches for references to locations outside of the initialized program
  36. space or to locations that lie in the middle of opcodes and generates equate
  37. statements for them.
  38.  
  39.     All three passes display the 'current pc' as they do their work. Despite
  40. the three pass design of DZ80, it is a very fast disassembler. It will dis-
  41. assemble an 5K binary file, outputing a 37K assembly source file, in about
  42. 14 seconds on an 8 MHz machine.
  43.  
  44.     DZ80 is an 'intelligent' disassembler. Since uninitialized space in a
  45. program will normally be filled with either 0 or 0ffh, blocks of such data
  46. will not be disassembled as page after page of NOP or RST 38h. They will
  47. be skipped over and an ORG statement will be inserted in the assembly output
  48. when the next initialized code is encountered.
  49.  
  50.     Despite all it's wonderfulness, DZ80 does have some drawbacks. Chief among
  51. them is that it does not try to analyze program flow, and therefore cannot
  52. tell the difference between valid executable code, data tables, and/or ascii
  53. data. This can lead to some strange looking disassembly when ascii data or
  54. address tables are encountered. The 'd' option is useful for identifying such
  55. problems.
  56.  
  57.     Comments, suggestions, bug reports, praise, or diatribes of any kind may
  58. be sent to the author at the address given above.
  59.  
  60.